import { verifyAccessToken } from '~/utils/jwt-utils'
import { MOCK_MENU_LIST } from '~/utils/mock-data'
import { unAuthorizedResponse } from '~/utils/response'

const namesMap: Record<string, any> = {}

function getNames(menus: any[]) {
    menus.forEach((menu) => {
        namesMap[menu.name] = String(menu.id)
        if (menu.children) {
            getNames(menu.children)
        }
    })
}
getNames(MOCK_MENU_LIST)

export default eventHandler(async (event) => {
    const userinfo = verifyAccessToken(event)
    if (!userinfo) {
        return unAuthorizedResponse(event)
    }
    const { id, name } = getQuery(event)

    return (name as string) in namesMap && (!id || namesMap[name as string] !== String(id))
        ? useResponseSuccess(true)
        : useResponseSuccess(false)
})
